on createGlobalVariable global gFirstSynth,gLastSynth,gLastSprite -- gFirstSynth è il primo synth che vedo, gLastSynth è l'ultimo -- gLastSprite è la sprite in cui si trova l'ultimo synth marcato -- se il primo marker è pieno if the name of member the memberNum of sprite 68 <> "m" then set gFirstSynth = integer(the name of member the memberNum of sprite 68) set gLastSynth = integer(the name of member the memberNum of sprite 68) set gLastSprite = 68 repeat with i = 69 to 73 if the name of member the memberNum of sprite i = "m" then exit repeat set gLastSynth = integer(the name of member the memberNum of sprite i) set gLastSprite = i end repeat -- se il primo marker è vuoto else set gFirstSynth = 0 set gLastSynth = 0 set gLastSprite = 67 end if end ------------------------------------------------------------------------------- on handleSprite global gPosVolSynth,gPosPanSynth -- si posizionano il volume e il pan set the locV of sprite 45 to gPosVolSynth set the locV of sprite 46 to gPosPanSynth updateStage -- fieldElencoSynthSalvati repeat with i = 76 to 79 set the visible of sprite i to false end repeat -- sprite con i numeri dei synth marcati repeat with i = 68 to 73 puppetSprite i,true end repeat end ------------------------------------------------------------------------------- on createList global posRectList set posRectList = [] repeat with i = 68 to 73 set temp = [the loc of sprite i,the rect of sprite i] append posRectList,temp end repeat end **************************************************************** -- arrivo a questa funzione cliccando su una nota, passo alla funzione l'ottava a cui appartiene la nota on playNote oct global gProg,gArp,gOnSynth,gPosVolSynth,gPosPanSynth,gSynthSel global progList,arpList,synthList put the name of member the memberNum of sprite the clickOn into nota -- non è in play, si accende if char 1 of nota <> "y" then set Gnota = "y" & nota set the memberNum of sprite the clickOn to the number of member Gnota updatestage -- aggiorno la sequenza append synthList,nota & oct else -- è in play, si spegne set nota = chars(nota,2,length(nota)) set the memberNum of sprite the clickOn to the number of member nota updatestage deleteAt synthList,getPos(synthList,nota & oct) end if -- se ho tolto l'ultimo nota si spegne il synth if synthList = [] then set gOnSynth = 0 IKSynthStop else if not gOnSynth then set gOnSynth = 1 -- aggiorno il play -- calcolo arp case(getPos(arpList,gArp)) of 1,2,3,4:set arp = integer(chars(gArp,3,length(gArp)))/4 otherwise set arp = 4 end case -- vol e pan IKSynthVolume integer(128*(-gPosVolSynth+54)/45) IKSynthPan integer(128*(-gPosPanSynth+54)/45) IKSynthArp getPos(progList,gProg)-1,arp,createSeq() end if -- se c'è l'hilite intorno ai marker sparisce if gSynthSel then set the locH of sprite 74 to -20 set gSynthSel = 0 end if end **************************************************************** -- click globale -- se clicco e c'è il fieldElencosynthsalvati aperto si chiude on mouseUp if the visible of sprite 76 then repeat with i = 76 to 79 set the visible of sprite i to false end repeat end if end